
$(function () {
    setTimeout('$("html").removeClass("js")', 1);    
    userMgrFuc.resetPwdValidation();
    userMgrFuc.addUserValidation();
    userMgrFuc.updateUserValidation();
    
    $("#search_btn").click(function(){
        //清空pageIndex
        $("input[name=currentPage]").val(1);
    });
});


/*显示增加用户信息 开始*/
var addUserRoleMap = new Map();
$("#add_user_btn").click(function() {
	add_bind_role($("#add_role_name").val());
    $("#add_user_win").modal('show');
});
$("#add_role_search_btn").click(function(){
	add_bind_role($("#add_role_name").val());
});
function add_bind_role(roleName){
	$("#add_start_set").empty();
	$.post("role/findRole.action",{roleName:roleName},function(json){
		if (json&&json.success) {
		  $.each(json.result.data, function(i,item){
			  if(!addUserRoleMap.containsKey(item.roleId.toString())){
				  $("#add_start_set").append("<label class='checkbox'><input type='checkbox' value='"+item.roleId+"'/><font title='"+item.roleDescription+"'>"+item.roleName+"</font></label>");
			  }
		  });
		}else {
        	alert(json?json.msg:"请求失败！");
        }
	});
}

$("#add_role_right_btn").click(function(){
	$("#add_start_set>label>:checkbox:checked").each(function(i,item){
		if(!addUserRoleMap.containsKey(item.value)){
			addUserRoleMap.put(item.value,item.value);
			$("#add_end_set").prepend($(item).parent());
		}
	});
});

$("#add_role_left_btn").click(function(){
	$("#add_end_set>label>:checkbox:checked").each(function(i,item){
		if(addUserRoleMap.containsKey(item.value)){
			addUserRoleMap.remove(item.value);
			$("#add_start_set").prepend($(item).parent());
		}
	});
});
/*显示修改用户信息 结束*/

/*增加用户信息方法 开始*/
$("#add_user_confirm").click(function () {	
    var  show_add_user_name_status  = $.trim($("#show_add_user_name_status").html());
    //表单数据验证通过
    if ($('#add_user_form').validate().form() && 0===show_add_user_name_status.length) {
        $.post("user/add.action",
            {
        		userName:$.trim($("#add_user_name").val()),
                nickName: $.trim($("#add_nick_name").val()),
                passWord: $.trim($("#add_user_password").val()),
                roleIds:addUserRoleMap.keys().join(",")
            },
            function (json) {
            	if (json&&json.success) {
                    //关闭增加用户信息窗口
                    $("#add_user_win").modal('hide');
                    //重置表单数据
                    document.getElementById("add_user_form").reset();
                    //重新刷新查询列表
                    refreshPage();
                } else {
                	alert(json?json.msg:"请求失败！");
                }
       });
    }
});
/*增加用户信息方法 结束*/

//所有的表单页面元素验证
$("#add_user_name").blur(function () {
    var add_user_name = $.trim($(this).val());
    if (add_user_name.length > 0) {
        $.post("user/checkUserName.action",
            {
                userName:add_user_name
            },
            function (json) {
            	if (json&&json.success) {
                	if (json.result.data) {
                		$("#show_add_user_name_status").text("该用户账号已经存在！");
                        $("#add_user_name").focus();
                	}else{
                		$("#show_add_user_name_status").text("");
                	}
                } else {
                	alert(json?json.msg:"请求失败！");
                }
            }
        );
    }
});

/*显示修改用户信息 开始*/
var updateUserRoleMap = new Map();
function show_update_user(id) {
    $.post("user/detail.action",{userId:id},
		function (json) {
	    	if (json&&json.success) {
	        	var user=json.result.data;
	            $("#update_user_id").val(user.userId);
	            $("#update_user_name").val(user.userName);
	            $("#update_nick_name").val(user.nickName);
	            $(":radio[name=update_is_disable][value="+(user.isDisable?1:0)+"]").prop('checked','true');
	            //角色信息
	            updateUserRoleMap.clear();
	            $("#update_end_set").empty();
	            $.each(json.result.roles, function(i,item){
	            	updateUserRoleMap.put(item.roleId.toString(),item.roleId.toString());
	            	//首次加载初始化已有角色
	            	$("#update_end_set").append("<label class='checkbox'><input type='checkbox' value='"+item.roleId+"'/><font title='"+item.roleDescription+"'>"+item.roleName+"</font></label>");
	            });	            
	            update_bind_role($("#update_role_name").val());
	            
	            $("#update_user_win").modal('show');
	    	}else{
	    		alert(json?json.msg:"请求失败！");
	        }
    });
}
function update_bind_role(roleName){
	$("#update_start_set").empty();
	$.post("role/findRole.action",{roleName:roleName},function(json){
		if (json&&json.success) {
		  $.each(json.result.data, function(i,item){
			  if(!updateUserRoleMap.containsKey(item.roleId.toString())){
				  $("#update_start_set").append("<label class='checkbox'><input type='checkbox' value='"+item.roleId+"'/><font title='"+item.roleDescription+"'>"+item.roleName+"</font></label>");
			  }
		  });
		}else {
        	alert(json?json.msg:"请求失败！");
        }
	});
}
$("#update_role_search_btn").click(function(){
	update_bind_role($("#update_role_name").val());
});
$("#update_role_right_btn").click(function(){
	$("#update_start_set>label>:checkbox:checked").each(function(i,item){
		if(!updateUserRoleMap.containsKey(item.value)){
			updateUserRoleMap.put(item.value,item.value);
			$("#update_end_set").prepend($(item).parent());
		}
	});
});

$("#update_role_left_btn").click(function(){
	$("#update_end_set>label>:checkbox:checked").each(function(i,item){
		if(updateUserRoleMap.containsKey(item.value)){			
			updateUserRoleMap.remove(item.value);
			$("#update_start_set").prepend($(item).parent());
		}
	});
});

$("#update_user_cancel").click(function(){
	$("#update_user_win").modal('hide');
});
/*显示修改用户信息 结束*/



/*提交修改用户信息 开始*/
$("#update_user_confirm").click(function () {
    if ($('#update_user_form').validate().form()) {        
        $.post("user/edit.action",
            {
        		userId: $("#update_user_id").val(),
        		nickName:$.trim($("#update_nick_name").val()),
        		isDisable:$(":radio[name=update_is_disable]:checked").val(),
        		roleIds:updateUserRoleMap.keys().join(",")
            },
            function (json) {
            	if (json&&json.success) {
                    //关闭修改用户窗口
                    $("#update_user_win").modal('hide');
                    //重置表单数据
                    //刷新用户管理查询列表页面
                    refreshPage();

                } else{
                	alert(json?json.msg:"请求失败！");
                }
            });
    }
});

function disable_user_confirm(id,flag) {
	var title=flag?"您确定要启用吗?":"您确定要禁用吗?";
    smoke.confirm(title, function (e) {
        if (e) {            
            $.post("user/disable.action",{userId:id,isDisable:!flag},
            	function (json) {
            		if (json&&json.success) {
	                    if (json.result.data) {
	                        //重新刷新列表页面
                            refreshPage();
	                    }else{
	                    	smoke.alert("操作失败！", {ok: "确定"});
	                    }
            		}else {
            			alert(json?json.msg:"请求失败！");
                    }
                });
        }
    }, {ok:"确定", cancel:"取消", reverseButtons: true});
}

/*显示详细用户信息 开始*/
function show_detail_user(id) {
    $.post("user/detail.action",{userId:id},
		function (json) {
    		if (json&&json.success) {
	        	var user=json.result.data;
	            $("#detail_user_id").val(user.userId);
	            $("#detail_user_name").val(user.userName);
	            $("#detail_nick_name").val(user.nickName);
	            $("#detail_create_time").val(new Date(user.createTime).format());                
	            $("#detail_last_login_time").val(new Date(user.lastLoginTime).format());
	            $("#detail_is_disable").val(user.isDisable?"是":"否");
	            
	            $("#detail_role_set").empty();
	            $.each(json.result.roles, function(i,item){
	            	$("#detail_role_set").append("<span>"+item.roleName+"</span><br/>");
	            });
	            
	            $("#detail_user_win").modal('show');
        	}else{
        		alert(json?json.msg:"请求失败！");
            }
	        
    	});
}

$("#detail_user_confirm").click(function(){
	$("#detail_user_win").modal('hide');
});
/*显示详细用户信息 结束*/

/*重置密码 开始*/
function reset_pwd(id,name){
	$("#reset_pwd_user_id").text(id);
	$("#reset_pwd_user_name").text(name);
	$("#reset_pwd_win").modal('show');
}

$("#select_reset_pwd").change(function(){
	var value=$(this).val();
	if(value=="0"){
		$("#reset_pwd_content").show();
		$("#default_reset_pwd").hide();
	}else{
		$("#reset_pwd_content").hide();
		$("#default_reset_pwd").show();
	}
});

$("#reset_pwd_confirm").click(function(){
	var pwd=$("#select_reset_pwd").val()=="0"?$("#new_reset_pwd").val():$("#select_reset_pwd").val();
	if(!pwd||pwd.length==0){
		//表单数据验证
		$("#reset_pwd_form").validate().form();
		return false;
	}
	$.post("user/resetPwd.action",{userId:$("#reset_pwd_user_id").text(),passWord:pwd},
		function(json){
			if (json&&json.success) {
	            //关闭修改用户窗口
	            $("#reset_pwd_win").modal('hide');
	            //重置表单数据
	            //刷新用户管理查询列表页面
                refreshPage();
	        } else{
	        	alert(json?json.msg:"请求失败！");
	        }
	});
});

$("#reset_pwd_cancel").click(function(){
	$("#reset_pwd_win").modal('hide');
});
/*重置密码 结束*/

// 函数定义
userMgrFuc = {
	resetPwdValidation:function () {
        reg_validator = jQuery('#reset_pwd_form').validate({
            errorClass:'error',
            validClass:'valid',
            highlight:function (element) {
                $(element).closest('div').addClass("f_error");
            },
            unhighlight:function (element) {
                $(element).closest('div').removeClass("f_error");
            },
            errorPlacement:function (error, element) {
                $(element).closest('div').append(error);
            },
            rules:{
            	new_reset_pwd:{required:true}
            },
            messages:{
            	new_reset_pwd:{required:"新密码不能为空！"}
            },
            invalidHandler:function (form, validator) {
                $.sticky("您的查询条件有问题，请仔细检查！", {autoclose:5000, position:"top-right", type:"st-error" });
            }
        })
    },
    // validator 创建用户
    addUserValidation:function () {
        reg_validator = jQuery('#add_user_form').validate({
            errorClass:'error',
            validClass:'valid',
            highlight:function (element) {
                $(element).closest('div').addClass("f_error");
            },
            unhighlight:function (element) {
                $(element).closest('div').removeClass("f_error");
            },
            errorPlacement:function (error, element) {
                $(element).closest('div').append(error);
            },
            rules:{
            	add_user_name:{ required:true,maxlength:30},
            	add_nick_name:{ required:true },
            	add_user_password:{ required:true }
            },
            messages:{
            	add_user_name:{ required:"用户账号不能为空！",maxlength:"用户账号长度不能超过30" },
            	add_nick_name:{ required:"用户昵称不能为空！" },
            	add_user_password:{ required:"用户密码不能为空！" }
            },
            invalidHandler:function (form, validator) {
                $.sticky("您的表单填写的有问题，请仔细检查！", {autoclose:5000, position:"top-right", type:"st-error" });
            }
        })
    },
    // validator 修改用户
    updateUserValidation:function () {
        reg_validator = jQuery('#update_user_form').validate({
            errorClass:'error',
            validClass:'valid',
            highlight:function (element) {
                $(element).closest('div').addClass("f_error");
            },
            unhighlight:function (element) {
                $(element).closest('div').removeClass("f_error");
            },
            errorPlacement:function (error, element) {
                $(element).closest('div').append(error);
            },
            rules:{
            	update_nick_name:{ required:true }
            },
            messages:{
            	update_nick_name:{ required:"用户昵称不能为空！" }
            },
            invalidHandler:function (form, validator) {
                $.sticky("您的表单填写的有问题，请仔细检查！", {autoclose:5000, position:"top-right", type:"st-error" });
            }
        })
    }
};


